package com.chenwenxuan.sync.console.task;

import java.util.Map;

import com.chenwenxuan.sync.console.TaskInvoker;
import com.chenwenxuan.sync.console.model.Task;
import com.chenwenxuan.sync.console.model.TaskRuntimeInfo;
import com.chenwenxuan.sync.console.service.TaskInvokerService;

public interface ExecuteTask extends Runnable {
	
	public void setTask(Task task);
	public void setContext(Map<String, String> context);
	public void setInvoker(TaskInvoker invoker);
	public void setTaskService(TaskInvokerService service);
	
	public Task getTask();
	public Map<String, String> getContext();
	public TaskInvoker getInvoker();
	public TaskInvokerService getTaskService();
		
	public TaskRuntimeInfo collectTaskRuntimeInfo();
	
	public void run();

}
